from abc import ABC, abstractmethod

from src.model.cpu_info import CpuInfo
from src.model.disk_info import DiskInfo
from src.model.memory_info import MemoryInfo


class HardwareInfoInterface(ABC):

    @abstractmethod
    def get_cpu_info(self) -> CpuInfo:
        pass

    @abstractmethod
    def get_memory_info(self) -> MemoryInfo:
        pass

    @abstractmethod
    def get_disk_infos(self) -> list[DiskInfo]:
        pass